package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.UserDao;
import com.cn.wanxi.dao.impl.UserImpl;
import com.cn.wanxi.model.UserModel;
import com.cn.wanxi.service.IUserService;

import java.util.List;

public class UserServiceImpl implements IUserService {

    /**
     * 1.判断验证码
     * 2.判断当前用户名是否存在
     * 3.增加
     *
     * @param userModel
     * @return
     */
    @Override
    public String add(UserModel userModel) {

        if (userModel.getCode().equals(userModel.getSessionCode())) {//判断验证码是否正确
            UserDao userDao = new UserImpl();
            //根据用户名取数据库查询，如果返回的是空数据，代表数据库没有值，可以新增，否则返回以及存在
            UserModel model = userDao.findByUsername(userModel.getUsername());
            if (model == null) {
                return userDao.add(userModel) == 1 ? "注册成功" : "注册失败";
            } else {
                return "用户名以及存在，请重新输入";
            }
        } else {
            return "验证码不正确";
        }


    }

//    private String jiami(String password) {
//
//        return password + "---";
//    }

    @Override
    public String login(UserModel userModel) {

        if (userModel.getCode().equals(userModel.getSessionCode())) {
            UserDao userDao = new UserImpl();
            UserModel model = userDao.findByUsernameAndPassword(userModel);
            if (model == null) {
                return "用户名或者密码不正确";
            } else {
                return "1";
            }
        } else {
            return "验证码不正确";
        }
    }

    @Override
    public List<UserModel> findAll() {
        UserDao userDao = new UserImpl();
        return userDao.findAll();
    }

    @Override
    public List<UserModel> findAll(UserModel userModel) {

        UserDao userDao = new UserImpl();
        return userDao.findAll(userModel);
    }

    @Override
    public UserModel findById(int id) {
        UserDao userDao = new UserImpl();
        return userDao.findById(id);
    }

    @Override
    public int update(UserModel userModel) {
        /**
         * 首先判断用户输入的密码是否和以前的密码一直,否则不能让他修改
         */
        int result = -1;
        UserDao userDao = new UserImpl();
//        if (judgePassword(userModel)) {
        result = userDao.update(userModel);
//        }
        return result;
    }

    @Override
    public int del(int id) {
        UserDao userDao = new UserImpl();
        return userDao.del(id);
    }

    /**
     * 如果有值,返回true.表示可以进行修改密码,否则返回false,密码不对,没有权限修改
     *
     * @param userModel
     * @return
     */
    private boolean judgePassword(UserModel userModel) {
        UserDao userDao = new UserImpl();
        UserModel model = userDao.judgePassword(userModel);
        return model != null;
    }
}
